package com.ziytek.web.citizen.quartz;

import com.ziytek.web.citizen.model.bean.CronJob;
import com.ziytek.web.citizen.model.rsp.R;

/**
 * @author fengh
 */
public interface QuartzService {

    /**
     * 新增定时任务
     *
     * @param jobName      任务名称
     * @param cron         定时表达式
     * @param jobClassName 任务类名
     * @param triggerName  触发器名称
     * @param seconds  执行时长（秒）
     * @return R
     */
    R addCronJob(String jobName, String cron, String jobClassName, String triggerName, int seconds);

    /**
     * 新增定时任务
     *
     * @param cronJob      cronJob
     * @return R
     */

    R addCronJob(CronJob cronJob);

    /**
     * 更新定时任务
     *
     * @param jobName      任务名称
     * @param cron         定时表达式
     * @param jobClassName 任务类名
     * @return R
     */
    R updateCronJob(String jobName, String cron, String jobClassName);

    /**
     * 停止定时任务
     *
     * @param jobName 任务名称
     * @return R
     */
    R pauseCronJob(String jobName);

    /**
     * 唤醒(继续)定时任务
     *
     * @param jobName 任务名称
     * @return R
     */
    R resumeCronJob(String jobName);

    /**
     * 删除定时任务
     *
     * @param jobName 任务名称
     * @return R
     */
    R deleteCronJob(String jobName);
}
